﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections.ObjectModel;
using System.IO.IsolatedStorage;
using System.Collections.Generic;
using System.IO;

namespace Phone.Framework.Data
{
    //public class IsolatedStorageCollection<T> : ObservableCollection<T>
    //{
    //     private static IsolatedStorageFile set = IsolatedStorageFile.GetUserStoreForApplication();

    //    private string _cacheKey;
    //    private IsolatedStorageCollection()
    //    {
           
    //    }

    //    public IsolatedStorageCollection(string cacheKey, IEnumerable<T> collection)
    //        : base(collection)
    //    {
    //        _cacheKey = cacheKey;
    //    }

    //    public static IsolatedStorageCollection<T> CreateEmptyCollection(string cacheKey)
    //    {
    //        var fs= set.CreateFile(cacheKey);
    //       // fs.w
            
    //        List<T> list = null;
    //        list = new List<T>();
            
    //        //set[cacheKey] = list;
    //        //set.Save();
    //        return new IsolatedStorageCollection<T>(cacheKey, list);
    //    }
       
    //    public static IsolatedStorageCollection<T> CreateCollection(string cacheKey,Func<BinaryReader,T> action)
    //    {
    //        List<T> list = null;
    //        if (set.FileExists(cacheKey))
    //        {
    //            var fs = set.OpenFile(cacheKey, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite);
    //            BinaryReader reader = new BinaryReader(fs);
    //            while (fs.Position<fs.Length)
    //            {
    //                list.Add(action(reader));
    //            }
                
    //            fs.Dispose();
    //           //fs.
    //        }
    //        else
    //        {
    //            return CreateEmptyCollection(cacheKey);
               
    //        }
    //        return new IsolatedStorageCollection<T>(cacheKey, list);
    //    }

    //    public static void DeleteCollection(string cacheKey)
    //    {
    //        set.Remove(cacheKey);
    //        set.Save();
    //    }

    //    public void Save()
    //    {
    //        set[_cacheKey]=new List<T>(this);
    //        set.Save();
    //    }
    //}
}
